﻿///
/// Pamela.Logic.Scaffolding.Engines
/// 
namespace Pamela.Logic.Scaffolding.Engines
{
    using System;
    using System.Collections.Generic;
    using System.Reflection;

    using Pamela.Logic.Engines.Base;
    using Pamela.Logic.Helpers;
    using Pamela.Logic.Layers.Mvc;

    /// <summary>
    /// MvcScaffoldingEngine class
    /// </summary>
    public class MvcScaffoldingEngine : BaseScaffoldingEngine
    {
        /// <summary>
        /// Initializes a new instance of the MvcScaffoldingEngine class
        /// </summary>
        /// <param name="assembly">Shared layer assembly</param>
        /// <param name="builderInfo">Builder info object</param>
        public MvcScaffoldingEngine(Assembly assembly, BuilderInfo builderInfo)
            : base(assembly, builderInfo)
        {          
        }

        /// <summary>
        /// Register all internal layer objects
        /// </summary>
        protected override void RegisterLayers()
        {
            this.layersCollection.Add(new MvcApplicationLayer(assembly, builderInfo));
            this.layersCollection.Add(new MvcBusinessLayer(assembly, builderInfo));
            this.layersCollection.Add(new MvcDataLayer(assembly, builderInfo));
        }
    }
}
